/*
 * Copyright 2008-2023 dexian.vip. All rights reserved.
 * Support: http://www.dexian.vip
 * License: http://www.dexian.vip/license
 */

package vip.dexian.admin.service;

import vip.dexian.core.enums.FileTypeEnum;
import org.springframework.web.multipart.MultipartFile;

/**
 * 文件处理service
 *
 * @author 挺好的 2023年06月01日 11:55
 */
public interface FileService {

    /**
     * 校验文件是否合法
     *
     * @param fileType
     *         文件类型
     * @param multipartFile
     *         {@link  org.springframework.web.multipart.MultipartFile}
     */
    void valid (FileTypeEnum fileType, MultipartFile multipartFile);

    /**
     * 上传文件
     *
     * @param fileType
     *         文件类型
     * @param multipartFile
     *         {@link  org.springframework.web.multipart.MultipartFile}
     * @param async
     *         是否异步上传
     *
     * @return 文件上传后的路径
     */
    String upload (FileTypeEnum fileType, MultipartFile multipartFile, boolean async);

    /**
     * 使用异步上传
     *
     * @param fileType
     *         文件类型
     * @param multipartFile
     *         {@link  org.springframework.web.multipart.MultipartFile}
     *
     * @return 文件上传后的路径
     */
    String upload (FileTypeEnum fileType, MultipartFile multipartFile);
}
